package com.treasure.mall.biz.service.core.withdraw;

import com.treasure.mall.biz.base.SearchableCrudService;
import com.treasure.mall.biz.entity.withdraw.UserBankInfoPO;
import com.treasure.mall.biz.vo.withdraw.UserBankInfoVO;
import com.treasure.mall.zbq.common.base.ApiResult;

import java.util.List;

/**
 * @author zoul
 * @version 1.0
 * @date 2020/6/14 15:39
 * @Description
 */
public interface UserBankInfoService extends SearchableCrudService<UserBankInfoPO, Long> {

    /**
     * 获取用户所有银行卡
     *
     * @param userId 用户Id
     * @return
     */
    List<UserBankInfoVO> getUserBankList(Long userId);

    /**
     * 获取用户默认银行卡
     *
     * @param userId 用户Id
     * @return
     */
    UserBankInfoVO getUserDefaultBank(Long userId);

    /**
     * 修改or新增银行卡信息
     *
     * @param po 实体
     * @return
     */
    ApiResult addOrUpdateUserBank(UserBankInfoPO po);

    /**
     * 设置默认银行卡
     *
     * @param userId 用户Id
     * @param infoId 主键Id
     * @return
     */
    ApiResult setUserBankDefault(Long userId, Long infoId);

    /**
     * 删除银行卡
     *
     * @param userId
     * @param infoId
     */
    void deleteUserBank(Long userId, Long infoId);
}
